//class Solution {
//public:
//    void fx(vector<string>& res, string str, string& dights, unordered_map<char, string>& m, int k)
//    {
//        if (k == dights.size())
//        {
//            res.push_back(str);
//            return;
//        }
//        string tmp = m[dights[k]];
//        for (auto e : tmp)
//        {
//            str += e;
//            fx(res, str, dights, m, k + 1);
//            str.pop_back();
//        }
//        return;
//    }
//public:
//    vector<string> letterCombinations(string digits) {
//        unordered_map<char, string> m = {
//            {'0',""},{'1',"*"},{'2',"abc"},{'3',"def"},{'4',"ghi"},{'5',"jkl"}
//            ,{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}
//        };
//        vector<string> res;
//        if (digits == "")
//            return res;
//        fx(res, "", digits, m, 0);
//        return res;
//    }
//};